package grupobbva.pe.operhc.action;

import static grupobbva.pe.operhc.util.Constant.COD_MENSAJE_IMPRESION;
import static grupobbva.pe.operhc.util.Constant.FAMILIA_TARJETAS;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import grupobbva.pe.operhc.domain.DatoImpresion;
import grupobbva.pe.operhc.domain.Mensaje;
import grupobbva.pe.operhc.form.ReimpresionForm;
import grupobbva.pe.operhc.service.CuadroMandoService;
import grupobbva.pe.operhc.service.CuadroMandoServiceImpl;
import grupobbva.pe.operhc.service.ParametroService;
import grupobbva.pe.operhc.service.ParametroServiceImpl;
import grupobbva.pe.operhc.util.GenericObject;
import grupobbva.pe.operhc.util.ValidationUtil;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

public class ReimpresionAction extends DispatchAction{
	private static Logger logger = Logger.getLogger(ConsultaActualAction.class);

	private CuadroMandoService cuadroMandoService = null;
	private ParametroService parametrosService = null;
	
	public ReimpresionAction() {
		cuadroMandoService = new CuadroMandoServiceImpl();
		parametrosService = new ParametroServiceImpl();
	}
	public ActionForward reimprimirSolicitud(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
			
			DatoImpresion odatoImpresion=new DatoImpresion();
			request.setCharacterEncoding("UTF-8");
			String mensajePiePagina="";
			//ReimpresionForm reimpresionForm = (ReimpresionForm)form;
			ReimpresionForm reimpresionForm = new ReimpresionForm();
			try {
				String numeroContrato=(request.getParameter("numeroContrato"));
				String numeroSolicitud=(request.getParameter("numeroSolicitud"));
				String tipoCodigo=(request.getParameter("tipoCodigo"));
				odatoImpresion=parametrosService.getDataImpresionByCode(numeroContrato,numeroSolicitud, tipoCodigo);
				
				if (odatoImpresion!=null){
				
				reimpresionForm.setIdreimpresion          (odatoImpresion.getIdreimpresion          ())    ; 
				reimpresionForm.setNumerosolicitud        (odatoImpresion.getNumerosolicitud        ())    ; 
				reimpresionForm.setNumerocontrato         (odatoImpresion.getNumerocontrato()!=null?odatoImpresion.getNumerocontrato():numeroContrato)    ; 
				reimpresionForm.setGestor                 (odatoImpresion.getGestor                 ())    ; 
				reimpresionForm.setSubproducto            (odatoImpresion.getSubproducto            ())    ; 
				reimpresionForm.setDivisa                 (odatoImpresion.getDivisa                 ())    ; 
				reimpresionForm.setImporte                (odatoImpresion.getImporte                ())    ; 
				reimpresionForm.setPlazo                  (odatoImpresion.getPlazo                  ())    ; 
				reimpresionForm.setTasa                   (odatoImpresion.getTasa                   ())    ; 
				reimpresionForm.setDesproducto            (odatoImpresion.getDesproducto            ())    ; 
				reimpresionForm.setDessubproducto         (odatoImpresion.getDessubproducto         ())    ; 
				reimpresionForm.setFamilia                (odatoImpresion.getFamilia                ())    ; 
				reimpresionForm.setBinsubproducto         (odatoImpresion.getBinsubproducto         ())    ; 
				reimpresionForm.setCanal                  (odatoImpresion.getCanal                  ())    ; 
				reimpresionForm.setSubcanal               (odatoImpresion.getSubcanal               ())    ; 
				reimpresionForm.setUsuariovendedor        (odatoImpresion.getUsuariovendedor        ())    ; 
				reimpresionForm.setSegmentocampania       (odatoImpresion.getSegmentocampania       ())    ; 
				reimpresionForm.setCuentacargo            (odatoImpresion.getCuentacargo            ())    ; 
				reimpresionForm.setFormapago              (odatoImpresion.getFormapago              ())    ; 
				reimpresionForm.setDialiquidacion         (odatoImpresion.getDialiquidacion         ())    ; 
				reimpresionForm.setProductoofertar        (odatoImpresion.getProductoofertar        ())    ; 
				reimpresionForm.setCuotacontrato          (odatoImpresion.getCuotacontrato          ())    ; 
				reimpresionForm.setFechaalta              (odatoImpresion.getFechaalta              ())    ; 
				reimpresionForm.setContratooriginal       (odatoImpresion.getContratooriginal       ())    ; 
				reimpresionForm.setLineacredito           (odatoImpresion.getLineacredito           ())    ; 
				reimpresionForm.setSaldopendientepago     (odatoImpresion.getSaldopendientepago     ())    ; 
				reimpresionForm.setGlosahearder           (odatoImpresion.getGlosahearder           ())    ; 
				reimpresionForm.setEstado                 (odatoImpresion.getEstado                 ())    ; 
				reimpresionForm.setCodusuariocreacion     (odatoImpresion.getCodusuariocreacion     ())    ; 
				reimpresionForm.setCodusuarioimpresion    (odatoImpresion.getCodusuarioimpresion    ())    ; 
				reimpresionForm.setCodusuarioreimpresion  (odatoImpresion.getCodusuarioreimpresion  ())    ; 
				reimpresionForm.setFechacreacion          (odatoImpresion.getFechacreacion          ())    ; 
				reimpresionForm.setFechaimpresion         (odatoImpresion.getFechaimpresion         ())    ; 
				reimpresionForm.setFechareimpresion       (odatoImpresion.getFechareimpresion       ())    ; 
				
				reimpresionForm.setDescanal               (odatoImpresion.getDescanal               ()) ;
				reimpresionForm.setDessubcanal            (odatoImpresion.getDessubcanal            ()) ;
				reimpresionForm.setNombrecompletovendedor (odatoImpresion.getNombrecompletovendedor ()) ;
				
				reimpresionForm.setOficinapertenencia     (odatoImpresion.getOficinapertenencia     ()) ;
				reimpresionForm.setTipodocumento          (odatoImpresion.getTipodocumento          ()) ;
				reimpresionForm.setNumerodocumento        (odatoImpresion.getNumerodocumento        ()) ;
				reimpresionForm.setCodigocentral          (odatoImpresion.getCodigocentral          ()) ;
				reimpresionForm.setRazonsocial            (odatoImpresion.getRazonsocial            ()) ;
				reimpresionForm.setGrupoburo              (odatoImpresion.getGrupoburo              ()) ;
				reimpresionForm.setFechaevaluacion        (odatoImpresion.getFechaevaluacion        ()) ;
				reimpresionForm.setClasificacionbbva      (odatoImpresion.getClasificacionbbva      ()) ;
				reimpresionForm.setClasificacionsf        (odatoImpresion.getClasificacionsf        ()) ;
				reimpresionForm.setFlujooperativo         (odatoImpresion.getFlujooperativo         ()) ;
				reimpresionForm.setNombrecompleto	  	  (odatoImpresion.getNombrecompleto	        ()) ;
				
				}
				
				Mensaje mensaje = parametrosService.getMensajeByCode(COD_MENSAJE_IMPRESION);			
				if(mensaje!=null){
					mensajePiePagina=mensaje.getDesMensaje()!=null?mensaje.getDesMensaje():"";
				}	
				
			} catch (Exception e) {
				logger.error(GenericObject.formatException(e));
			}


			request.setAttribute("FAMILIA_TARJETAS", FAMILIA_TARJETAS);
			request.setAttribute("currentDate", ValidationUtil.getCurrentDate());
			request.setAttribute("command", reimpresionForm);
			request.setAttribute("PIE_PAGINAM", mensajePiePagina);	
			
			return mapping.findForward("reimpresionSolicitudContrato");
		}

}
